module.exports = {
  // 服务器配置
  server: {
    port: process.env.PORT || 3000,
    host: process.env.HOST || '0.0.0.0'
  },

  // Twitter API配置
  twitter: {
    bearerToken: process.env.TWITTER_BEARER_TOKEN || 'your_twitter_bearer_token_here',
    apiVersion: '2',
    maxResults: 100
  },

  // API配置
  apis: {
    binance: {
      baseURL: 'https://api.binance.com',
      timeout: 10000,
      retries: 3
    },
    okx: {
      baseURL: 'https://www.okx.com',
      timeout: 10000,
      retries: 3
    },
    geckoTerminal: {
      baseURL: 'https://api.geckoterminal.com',
      timeout: 10000,
      retries: 3
    },
    coinGecko: {
      baseURL: 'https://api.coingecko.com',
      timeout: 10000,
      retries: 3,
      apiKey: process.env.COINGECKO_API_KEY || '' // 可选，免费版本不需要
    },
    gmgn: {
      baseURL: 'https://gmgn.ai',
      timeout: 10000,
      retries: 3
    },
    aveAi: {
      baseURL: 'https://ave.ai',
      timeout: 10000,
      retries: 3,
      apiKey: process.env.AVE_AI_API_KEY || 'your_ave_ai_api_key_here'
    }
  },

  // 数据库配置（如果使用数据库）
  database: {
    type: 'json', // 'json' | 'mongodb' | 'mysql'
    path: './data', // JSON文件存储路径
    // MongoDB配置示例
    // mongodb: {
    //   url: process.env.MONGODB_URL || 'mongodb://localhost:27017/crypto-aggregator',
    //   options: {
    //     useNewUrlParser: true,
    //     useUnifiedTopology: true
    //   }
    // }
  },

  // 定时任务配置
  scheduler: {
    enabled: true,
    dataRefreshInterval: '*/5 * * * *', // 每5分钟刷新数据
    cleanupInterval: '0 2 * * *',       // 每天凌晨2点清理旧数据
    maxDataAge: 24 * 60 * 60 * 1000     // 数据最大保存时间（24小时）
  },

  // 日志配置
  logging: {
    level: process.env.LOG_LEVEL || 'info',
    file: {
      enabled: true,
      path: './logs',
      maxSize: '10m',
      maxFiles: 5
    },
    console: {
      enabled: true,
      colorize: true
    }
  },

  // 缓存配置
  cache: {
    enabled: true,
    ttl: 5 * 60 * 1000, // 5分钟缓存
    maxSize: 1000       // 最大缓存条目数
  },

  // 分析配置
  analysis: {
    // 代币评分权重
    tokenScoring: {
      priceStability: 0.2,    // 价格稳定性权重
      volumeConsistency: 0.15, // 交易量一致性权重
      marketCapRank: 0.2,     // 市值排名权重
      sourceReliability: 0.15, // 数据源可靠性权重
      riskFactors: 0.3        // 风险因素权重
    },
    
    // 聪明钱评分权重
    smartMoneyScoring: {
      profitability: 0.3,     // 盈利能力权重
      consistency: 0.25,      // 一致性权重
      riskManagement: 0.2,    // 风险管理权重
      tradingVolume: 0.15,    // 交易量权重
      holdingTime: 0.1        // 持仓时间权重
    },

    // 风险阈值
    riskThresholds: {
      volatility: {
        low: 0.05,      // 5%以下为低波动
        medium: 0.15,   // 15%以下为中等波动
        high: 0.3       // 30%以上为高波动
      },
      liquidity: {
        minimum: 1000000 // 最小流动性要求（美元）
      }
    }
  },

  // 数据源优先级
  sourcePriority: {
    price: ['binance', 'okx', 'coinGecko'],
    volume: ['binance', 'okx', 'geckoTerminal'],
    marketCap: ['coinGecko', 'geckoTerminal'],
    smartMoney: ['gmgn', 'aveAi'],
    social: ['twitter']
  },

  // 限流配置
  rateLimit: {
    enabled: true,
    windowMs: 15 * 60 * 1000, // 15分钟窗口
    max: 100,                 // 每个窗口最大请求数
    message: '请求过于频繁，请稍后再试'
  },

  // CORS配置
  cors: {
    origin: process.env.CORS_ORIGIN || '*',
    credentials: true,
    methods: ['GET', 'POST', 'PUT', 'DELETE', 'OPTIONS'],
    headers: ['Content-Type', 'Authorization', 'Accept']
  },

  // 环境配置
  environment: process.env.NODE_ENV || 'development',
  
  // 调试模式
  debug: process.env.DEBUG === 'true' || false,

  // 数据导出配置
  export: {
    excel: {
      enabled: true,
      path: './data/exports',
      maxFileSize: '50MB'
    },
    json: {
      enabled: true,
      path: './data/json',
      prettyPrint: true
    }
  },

  // 通知配置（可选）
  notifications: {
    enabled: false,
    email: {
      smtp: {
        host: process.env.SMTP_HOST || 'smtp.gmail.com',
        port: process.env.SMTP_PORT || 587,
        secure: false,
        auth: {
          user: process.env.SMTP_USER || 'your_email@gmail.com',
          pass: process.env.SMTP_PASS || 'your_app_password'
        }
      },
      from: process.env.EMAIL_FROM || 'crypto-aggregator@example.com',
      to: process.env.EMAIL_TO || 'admin@example.com'
    },
    webhook: {
      url: process.env.WEBHOOK_URL || '',
      secret: process.env.WEBHOOK_SECRET || ''
    }
  }
};

// 环境变量说明：
// PORT - 服务器端口号
// HOST - 服务器主机地址
// NODE_ENV - 运行环境 (development/production)
// LOG_LEVEL - 日志级别 (debug/info/warn/error)
// DEBUG - 调试模式 (true/false)
// TWITTER_BEARER_TOKEN - Twitter API Bearer Token
// COINGECKO_API_KEY - CoinGecko API密钥（可选）
// AVE_AI_API_KEY - Ave.ai API密钥
// CORS_ORIGIN - CORS允许的源地址
// SMTP_* - 邮件通知配置
// WEBHOOK_* - Webhook通知配置

